class Watcher {
    constructor (vm, key, cb) {
        this.vm = vm;
        // data中的属性名称
        this.key = key;
        // 负责更新视图
        this.cb = cb;
        // 把Watcher对象记录到Dep类的target属性上
        Dep.target= this;
        // 触发get方法，在get方法中调用addSub
        this.oldValue= vm[key];
        Dep.target =  null
    }
    // 当数据发生变化时更新视图
    update () {
        const newValue = this.vm[this.key];
        if (newValue === this.oldValue) {
            return
        }
        this.cb(newValue);
    }
} 